Characteristics
Bands are:
- change count
- how often does the pixel change? -> count of change
- ranges from 0 to # of time steps
- higher values with more often change
- change frequency
- how stable is the pixel? -> mean of no-change-streaks
- ranges from 1 to # of time steps
- higher values correspond to longer periods of no change
- switch to the maximum of these periods?
- change range
- what magnitude does the change have? -> difference of max and min
- range dependent on max difference
- higher values indicate one high contrast event
- mean
- range calculated
- higher values for a higher mean backscatter
- threshold count
- count over the time period of one specific range of values -> how often were the pixels between a and b
- max is # of time steps
- high values depict high counts
sta <- read_stars("charac_five_attr/all_2017-01-08_2018-12-29.tif")
study_area <- st_transform(study_area, crs=st_crs(sta))
sta_small <- sta[study_area[1,]]
plot(sta_small[,,,1], main = "Change Count")
plot(sta_small[,,,2], main = "Change Frequency")
plot(sta_small[,,,3], main = "Change Range")
plot(sta_small[,,,4], main = "Mean")
plot(sta_small[,,,5], main = "Threshold Count")





Use Case Example: Count and Range
- pixels that change often but not by much: high count and low range -> high +
- pixels that change often and mostly with high range: high count, high range -> ~ 0
- pixels that change not so often but if they do, they do by a lot: low count, high range -> low -
- pixels that change not so often and if they do, they only change slightly: low count, low range -> ~ 0
# conversion to raster scales to 0:255
sta_small_count <- as(sta_small[,,,1], "Raster")
sta_small_range <- as(sta_small[,,,3], "Raster")
# NDI
ras <- (sta_small_count - sta_small_range) / (sta_small_count + sta_small_range)
# color
colo = viridisLite::inferno(20)
plot(ras, col = colo)

Full Extent RGB: R = Count, G = Frequency, B = Range
red -> much change, green -> much stability over time, blue -> high change amplitues
ras <- raster::stack("charac_five_attr/all_2017-01-08_2018-12-29.tif")
plotRGB(ras, r=1, g=2, b=3, stretch = "lin")

Full Extent RGB: R = Count, G = Frequency, B = Threshold Count
red -> much change, green -> much stability over time, blue -> high water threshold counts
ras <- raster::stack("charac_five_attr/all_2017-01-08_2018-12-29.tif")
ras <- crop(ras, study_area[1,])
ras <- mask(ras, study_area[1,])
plotRGB(ras, r=1, g=2, b=5, stretch = "lin")

Further Possibillities
- include thresholded raster as before: count of -22.5 < x < -17.6
- downscale / filter the tiles or the input rasters to account for speckle
- band naming